package Biblioteca;

import java.util.ArrayList;

/**
 * Clase que implementa un artista de la biblioteca.
 * Contiene información sobre sus álbumes y canciones.
 */
public class Artista extends ElementoBiblioteca {

    /**
     * Array de objetos Album de este artista.
     */
    private ArrayList<Album> albumes;

    /**
     * Constructora.
     * @param nombre Nombre del artista
     */
    public Artista(String nombre) {
        super(nombre);
        this.albumes = new ArrayList<Album>();
    }

    /**
     * Añade un álbum a la colección de este artista.
     * @param album
     */
    public void addAlbum(Album album) {
        this.albumes.add(album);
    }

    /**
     * Devuelve los álbumes de este artista en un arrayList.
     * @return álbumes de este artista.
     */
    public ArrayList<Album> getAlbumes() {
        return this.albumes;
    }

    /**
     * Imprime la información de un artista en un xml
     * @param nivelInicial Nivel del elemento en el xml, para ser tabulado correctamente.
     * @return XML con la información de un artista
     */
    public String toXml(int nivelInicial) {
        String textoXml;
        String prefijo = "";
        for (int i = 0; i < nivelInicial; i++) {
            prefijo += "\t";
        }
        textoXml = prefijo + "<artista nombre=\"" + this.encode(nombre) + "\">\n";
        for (int i = 0; i < this.albumes.size(); i++) {
            textoXml += this.albumes.get(i).toXml(nivelInicial + 1);
        }
        textoXml += prefijo + "</artista>\n";
        return textoXml;
    }
}
